Plugins/Community Based Plugins/Microsoft Sentinel Custom Plugin Scenarios/Sentinel Cost Query Plugin/KQL-SentinelCost.yaml (59 lines of code) (raw):

Descriptor: Name: Summarize Sentinel Cost details for a specified time and date range. DisplayName: "Sentinel KQL: Sentinel Cost Details" Description: Skills that lookup recent Sentinel Cost Details from Sentinel workspace. #Can you lookup what my Sentinel costs are for the past 7 days? #Can you provide a detailed summary of my total Sentinel costs for the past 90 days? Be sure to explain what each table is used for within Sentinel and the security value it provides. Also total up all the costs to give me an average monthly cost. Also be sure to give any cost saving recommendations based on my data ingestion. Settings: - Name: TenantId Label: TenantId Description: Azure tenant ID where Sentinel exists. HintText: Azure tenant ID where Sentinel exists. SettingType: String Required: true - Name: SubscriptionId Label: SubscriptionId Description: Azure subscription ID where Sentinel exists. HintText: Azure subscription ID where Sentinel exists. SettingType: String Required: true - Name: WorkspaceName Label: WorkspaceName Description: Log Analytics workspace name for Sentinel. HintText: Log Analytics workspace name for Sentinel. SettingType: String Required: true - Name: ResourceGroupName Label: ResourceGroupName Description: Resource group where Sentinel workspace exists. HintText: Resource group where Sentinel workspace exists. SettingType: String Required: true SkillGroups: - Format: KQL Skills: - Name: GetSentinelCost DisplayName: Get Sentinel Cost Description: Fetches all the Sentinel Cost details for each table for the specified time and date range from Sentinel. Inputs: - Name: fromDateTime Description: The from time and date Required: true - Name: toDateTime Description: The to time and date Required: true Settings: Target: Sentinel TenantId: "{{TenantId}}" SubscriptionId: "{{SubscriptionId}}" ResourceGroupName: "{{ResourceGroupName}}" WorkspaceName: "{{WorkspaceName}}" Template: |- let fromDateTime=datetime('{{fromDateTime}}'); let toDateTime=datetime('{{toDateTime}}'); Usage | where IsBillable == true | where TimeGenerated between ( fromDateTime .. toDateTime ) | where DataType <> "AzureDiagnostics" | summarize size = sum(Quantity)/1024, sizeOther = sumif(Quantity,(DataType !contains "_CL" and TimeGenerated between ( fromDateTime .. toDateTime )))/1024 by DataType | project ['Table Name'] = DataType, ['Table Size'] = size, ['Estimated cost'] = size*4.3 | order by ['Estimated cost'] desc | take 20